package edu.gduf.utils;

import com.fasterxml.jackson.databind.JsonNode;
import edu.gduf.domain.User;
import org.springframework.beans.factory.annotation.Autowired;

import java.net.URISyntaxException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author kgy
 */
public class UserUtil {


    /**
     * @param user
     * @return
     */
    public static User packUser(User user){
        if (user.getSex() == null)
            user.setSex(1);
        if (user.getDescription() == null)
            user.setDescription("该用户很懒,什么也没有说");
        if(user.getSkill() == null)
            user.setSkill("该用户很懒,什么也没有说");
        if(user.getEmail() == null)
            user.setEmail("无");
        if(user.getTel() == null)
            user.setTel("无");
        if(user.getAssociation() != null){
            if(user.getAssociation().getQqgroup() == null)
                user.getAssociation().setQqgroup("无");
            if (user.getAssociation().getWechat() == null)
                user.getAssociation().setWechat("无");
        }
        return user;
    }

    /**
     * 检查是否符合电话的要求
     * @param tel
     * @return
     */
    public static boolean checkTel(String tel){
        if(!tel.matches("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\\\d{8}$"))
            return false;
        return true;
    }


    /**
     * 检查邮箱是否符合格式
     * @param email
     * @return
     */
    public static boolean checkEmail(String email){
        if (!email.matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")) {
            return false;
        }
        return true;
    }

    /**
     * 检查用户名是否包含特殊字符
     * @param username
     * @return boolean
     */
    public static boolean checkUsername(String username){
        String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]|\n|\r|\t";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(username);
        return m.find();
    }
}
